perm filename RESULT.WRU[DOC,TOB] blob sn#079451 filedate 1973-12-23 generic text, type T, neo UTF8
00100		OPTIMIZING THE HUECKEL OPERATOR
00200	
00300	
00400	We seek to choose settings for the Hueckel operator which will
00500	optimize its performance in the sense of requiring the minimum edge height
00600	for 50% detection, while keeping a chosen level of false positives (say
00700	1%), spurious edge candidates with zero signal.  The techniques will
00800	work equally well for other operators and provides a good way of comparison
00900	and optimization.
01000	
01100	We consider only random camera noise.  Surface imperfections are
01200	part of the signal, and will be dealt with later.  The camera noise is
01300	adequately modelled with a gaussian.  The dependence of standard deviation
01400	on signal is a characteristic of the device.  For a vidicon, the noise
01500	is preamp noise, independent of signal.  A linear scale is appropriate for
01600	the vidicon, giving a constant error.  For an image dissector operated in
01700	the mode of requiring a constant photon count, the error is proportional
01800	to the signal; a logarithmic scale gives a constant error.
01900	
02000	The assumptions allow us to calculate analytically the behavior of any
02100	operator.  The Hueckel operator is sufficiently complicated to discourage
02200	analytic calculation.  We have made up fake data using a gaussian random
02300	number generator to obtain artificial edges in various orientations and
02400	step heights, including no step.
02500	
02600	The first step is to determine 1% and 5% limits of the cutoff variables
02700	from fake data with no signal.  These are the cutoff limits set by
02800	false positives.  
02900	For the Hueckel operator, they are conf and diff.  In terms of the signal
03000	squared, s0sq, and noise-squared, n0sq, they are:
03100		diff=s0sq;
03200		conf=sqrt(s0sq/(s0sq+n0sq));  ie the cosine of signal
03300	The second phase of evaluation is to determine the minimum edge signal
03400	which achieves 50% or more detection at the 1% and 5% limits.  Here we
03500	must take enough samples to get a good approximation to these limits.
03600		conf	diff  min edge
03650			      half height
03700		.95	1.250	.825
03800		.90	1.350	.70
03900		.85	1.350	.65
04000		.80	1.400	.67
04100		.75	1.400	.67
04150	Note that the height of a minimum edge is twice the amplitude shown.
04200	Values of diff are given in terms of the squared error and values of
04300	the minimum edge are in units of the error.
04400	The last values can be estimated independently.  Since the conf
04500	cutoff has no effect for values below .85, the requirement is that
04600	diff be above the corresponding diff cutoff.  We can evaluate the
04700	mean value of diff by a simulation with no noise.  That value checks
04800	well with the values above.
04900	We note that the conf cutoff has almost no utility, and that the optimum
05000	setting is for conf about .85.
05100	
05200	With the values determined for diff, conf, and the minimum step, we
05300	can calculate the standard deviation of angle and position
05400	of detected edges at various values
05500	of edge height.
05600	This is useful for determining colinearity, angle and position errors
05700	of straight line made from edge vectors, etc, particularly for extrapolation
05800	at vertices.
05900	
06000	
06100		Angular and position errors as a function of contrast
06200	Contrast	Angular Error	Position Error
06250	 .7		.478		.449
06300	1.0		.30		.356
06400	2.0		.112		.236
06500	3.5		.0625		.180
06600	5.0		.0432		.135
06700	7.5		.0286		.0793
06800	10.0		.0222		.0495
06900	for 9 bits, noise of 5.0 and 2000 events
07000	An approximate expression for these values is that 
07100		contrast*angular error is approx constant
07200		contrast*position error is approx constant
07300	Contrast	Contrast*	Contrast*
07400			Angular Error	Position Error
07500	.7		.335		.314
07600	1.0		.30		.356
07700	2.0		.224		.472
07800	3.5		.219		.629
07900	5.0		.216		.675
08000	7.5		.205		.595
08100	10.0		.222		.495
08200	
08300	We can evaluate sensitivity as a function of angle and position
08350	by calculating
08400	s0sq with no noise for various angles and positions.
08500		THETA		S0SQ	  THETA(RAD)	CY
08600		0		7.82		0	0
08700		.2		8.07		.078	.129
08800		.4		8.07		.157	.129
08900		.6		8.13		.236	.249
09000		.8		7.89		.314	.279
09100		1.0		8.00		.393	.391
09200		
09300		DELTA		S0SQ		X
09400		0		7.82
09500		.25		7.82		0
09600		.50		8.28		.51
09700		.75		8.28		.51
09800		1.0		6.48		1.0
09900		1.25		6.48		.95
10000		1.50		5.47		1.51
10100	Note some effects of quantization of angle and position.
10200	CY should be nearly equal to theta, and x should be nearly equal
10300	to delta.
     

06000	A final evaluation is the sensitivity to smooth shading.  Although Hueckel
06100	has said that the operator is insensitive to gradients, a glance at
06200	the analytic form indicates that it basically relies on the slope, or
06300	gradient.  Smooth shading is quite common, and it is the experience
06400	of many of us that the Hueckel operator does turn up spurious edge points
06500	on the surface of curved objects, or where there are reflections.
06600	The same problem limits  the utility of intensity countours and
06700	thresholding techniques.
06800	We are evaluating that sensitivity.
06900	
07000	We can measure the camera noise by one of two methods:
07100		by putting a uniform scene (white paper, defocus camera)
07200		in front of the camera and evaluating
07300		the sum of (x(i+1)-x(i))↑2=2nε↑2
07400	where ε is the standard deviation.  Or we can take the histogram of
07500		(x(i+1)-x(i)) 
07600		for actual scenes.  If we take the 63% limits of the histogram,
07700		we will have an approximation to 2.8ε.  We should not take
07800	the standard deviation from the variance of values, since edges will
07900	affect the sum of squares a great deal, while if edge points are few,
08000	they should not affect local histograms very much.
08100	
08200	It is possible to eliminate undesired sensitivity to smooth shading
08300	by several methods, most of which are not useful.
08400	The second derivatives and third derivatives have more noise than the
08500	gradient.  Subtracting the linear part of the signal over the support
08600	of an operator is a terribly bad method of eliminating smooth gradients.
08700	With the Hueckel operator that would eliminate nearly all the signal.
08800	The problem with that is that the linear approximation is over too small
08900	a support.  What we want is to determine the linear part over a much larger
09000	domain.  Lateral inhibition does this, although it is not immediately apparent.
09100	The biological system uses lateral inhibition for the same purpose as it
09200	was used in my edge operator at MIT.  There is a difficulty with satellites
09300	which will be discussed in a moment.  An elegant solution is the Retinex
09400	operation, by Horn, from Land.  This uses lateral inhibition followed by
09500	the inverse.
09600	
09700	The problem posed to motivate the retinex operation is:
09800	determine the reflectivities of objects, even when the illumination has
09900	shading.  Put another way, illumination varies smoothly, while reflectivities
10000	vary discontinuously at boundaries.  Eliminate the smooth shading.  This can
10100	be done by taking the           Laplacian, thresholding it, and taking
10200	the inverse.   Thus, all the slopes are now turned into plateaus.
10300	The only problem with the operation is that we do not know a speedy
10400	implementation of the inverse.